list(APPEND GUI_PUBLIC_INCLUDES
   QAbstractButton
   QAbstractScrollArea
   QAbstractSlider
   QAbstractSpinBox
   QButtonGroup
   QCalendarWidget
   QCheckBox
   QComboBox
   QCommandLinkButton
   QDateEdit
   QDateTimeEdit
   QDial
   QDialogButtonBox
   QDockWidget
   QDoubleSpinBox
   QDoubleValidator
   QFocusFrame
   QFontComboBox
   QFrame
   QGroupBox
   QIntValidator
   QKeySequenceEdit
   QLCDNumber
   QLabel
   QLineEdit
   QMainWindow
   QMdiArea
   QMdiSubWindow
   QMenu
   QMenuBar
   QMenuItem
   QPlainTextDocumentLayout
   QPlainTextEdit
   QProgressBar
   QPushButton
   QRadioButton
   QRubberBand
   QScrollArea
   QScrollBar
   QSizeGrip
   QSlider
   QSpinBox
   QSplashScreen
   QSplitter
   QSplitterHandle
   QStackedWidget
   QStatusBar
   QTabBar
   QTabWidget
   QTextBrowser
   QTimeEdit
   QTextEdit
   QToolBar
   QToolBox
   QToolButton
   QValidator
)

list(APPEND GUI_INCLUDES
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractbutton.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractscrollarea.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractslider.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractspinbox.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qbuttongroup.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qcalendarwidget.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qcheckbox.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qcombobox.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qcommandlinkbutton.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdateedit.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdatetimeedit.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdial.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdialogbuttonbox.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdockwidget.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdoublespinbox.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdoublevalidator.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qfocusframe.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qfontcombobox.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qframe.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qgroupbox.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qintvalidator.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qkeysequenceedit.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlabel.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlcdnumber.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlineedit.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmaccocoaviewcontainer_mac.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmacnativewidget_mac.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmainwindow.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmdiarea.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmdisubwindow.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmenu.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmenubar.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmenuitem.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qplaintextdocumentlayout.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qplaintextedit.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qprogressbar.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qpushbutton.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qradiobutton.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qrubberband.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qscrollarea.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qscrollbar.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qsizegrip.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qslider.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qspinbox.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qsplashscreen.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qsplitter.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qsplitterhandle.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qstackedwidget.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qstatusbar.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtabbar.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtabwidget.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtextbrowser.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtextedit.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtimeedit.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbar.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbox.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbutton.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qvalidator.h
)

list(APPEND GUI_PRIVATE_INCLUDES
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractbutton_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractscrollarea_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractslider_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractspinbox_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qbuttongroup_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qcombobox_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdatetimeedit_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdockarealayout_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdockwidget_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qeffects_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qframe_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qkeysequenceedit_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlabel_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlinecontrol_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlineedit_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmainwindowlayout_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmdiarea_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmdisubwindow_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmenu_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmenubar_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qplaintextedit_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qpushbutton_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qscrollarea_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qscrollbar_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qsplitter_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtabbar_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtextedit_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbar_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbararealayout_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbarextension_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbarlayout_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbarseparator_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qwidgetanimator_p.h
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qwidgetresizehandler_p.h
)

target_sources(CsGui
   PRIVATE
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractbutton.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractslider.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractspinbox.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qbuttongroup.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qcalendarwidget.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qcheckbox.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qcombobox.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qcommandlinkbutton.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdatetimeedit.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdial.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdialogbuttonbox.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdockwidget.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qdockarealayout.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qeffects.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qfontcombobox.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qframe.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qgroupbox.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qkeysequenceedit.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlabel.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlcdnumber.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlineedit_p.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlineedit.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qlinecontrol.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmainwindow.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmainwindowlayout.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmdiarea.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmdisubwindow.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmenu.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmenubar.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qprogressbar.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qpushbutton.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qradiobutton.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qrubberband.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qscrollbar.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qsizegrip.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qslider.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qspinbox.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qsplashscreen.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qsplitter.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qstackedwidget.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qstatusbar.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtabbar.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtabwidget.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtextedit.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtextbrowser.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbar.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbarlayout.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbarextension.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbarseparator.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbox.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbutton.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qvalidator.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qabstractscrollarea.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qwidgetresizehandler.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qfocusframe.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qscrollarea.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qwidgetanimator.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qtoolbararealayout.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qplaintextedit.cpp
)

if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
   target_sources(CsGui
      PRIVATE
      ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmaccocoaviewcontainer_mac.mm
      ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmacnativewidget_mac.mm
      ${CMAKE_CURRENT_SOURCE_DIR}/widgets/qmenu_mac.mm
   )
endif()
